package es.uned.etsii.si3.taller.servlets;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import com.j256.ormlite.field.DataType;

import es.uned.etsii.si3.taller.*;
import es.uned.etsii.si3.taller.FactoriaFunciones.FuncionDesconocida;

import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Enumeration;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.math.BigDecimal;



/**
 * Application Lifecycle Listener implementation class CargadorBaseDatos
 *
 */
public class CargadorBaseDatos implements ServletContextListener {

	/**
	 * Cargador por defecto de la clase 
	 *
	 */
	public CargadorBaseDatos() {
    }

	/**
	 * Inicializa el listener de contexto 
	 *
	 * @param  event	el evento a inicializar
     * @see ServletContextListener#contextInitialized(ServletContextEvent)
     */
    public void contextInitialized(ServletContextEvent event) {
    	try {
    		// Inicializamos la interfaz a la base de datos y creamos las tablas
    		FactoriaDAO.inicializarInterfazDAO();

    		// Creamos las funciones
    		FactoriaFunciones.inicializar();

    	    // Cargamos los datos de ejemplo
    	    cargarDatos();
		} catch (SQLException e) {

		}
    }

	/**
	 * Destructor del listener de contexto 
	 *
	 * @param  event	el evento a destruir     
	 * @see ServletContextListener#contextDestroyed(ServletContextEvent)
     */
    public void contextDestroyed(ServletContextEvent event) {
    	// Tomcat elimina automáticamente el registro contra la base de datos, así que no nos preocupamos
    }

	/**
	 * Método que hace la precarga de datos iniciales en la BD
     */	
	void cargarDatos() throws SQLException {
		// Inicializar Provincias y Poblaciones
	
		Provincia Madrid = Provincia.crear("Madrid");
			Poblacion Getafe = Poblacion.crear("Getafe", Madrid);
			Poblacion Alcobendas = Poblacion.crear("Alcobendas", Madrid);
			Poblacion Parla = Poblacion.crear("Parla", Madrid);
			Poblacion MadridCapital = Poblacion.crear("Parla", Madrid);
		
		Provincia Toledo = Provincia.crear("Toledo");
			Poblacion TalaveraDeLaReina = Poblacion.crear("Talavera de la Reina", Toledo);
			Poblacion ToledoCapital = Poblacion.crear("Toledo", Toledo);
		
		Provincia Segovia = Provincia.crear("Segovia");
			Poblacion SegoviaCapital = Poblacion.crear("Segovia", Segovia);

		// Usuarios sin asociar
		
		Usuario.crear("usuario", "password", "foobar@gmail.com", true).activar();		
		Usuario.crear("empleado", "password", "foobar@gmail.com", false).activar();		
		
		// Inicializamos las secciones
		
		TipoSeccion mec = TipoSeccion.crear("Mecánica");
		TipoSeccion pin = TipoSeccion.crear("Pintura");
		TipoSeccion cha = TipoSeccion.crear("Chapa");
		TipoSeccion ele = TipoSeccion.crear("Electricidad");
		
		//Creamos talleres y secciones para pruebas. Uno está inactivo
		
		Taller taller1 = Taller.crear("Talleres Perez S.A.", "A12345678", "Calle del Nardo", 
				Alcobendas, Madrid, "28100", "901TALLER1",new BigDecimal(12.00), true);
			Seccion mect1 = Seccion.crear (taller1, mec);
			Seccion pint1 = Seccion.crear (taller1, pin);
			Seccion chat1 = Seccion.crear (taller1, cha);
			Seccion elet1 = Seccion.crear (taller1, ele);
		
		Taller taller2 = Taller.crear ("Talleres Lopez S.L.", "A87654321", 
				"Calle del Cardo", Getafe, Madrid, "28305", "901TALLER2", new BigDecimal (11.50), 
				true);
			Seccion mect2 = Seccion.crear (taller2, mec);
			Seccion elet2 = Seccion.crear(taller2, ele);
		
		Taller taller3 = Taller.crear ("Talleres Sanchez", "B12345678", "Calle del Cirilo", Alcobendas,
				Madrid, "28210", "901TALLER3", new BigDecimal(12.50), true);
			Seccion pint3 = Seccion.crear(taller3, pin);
			Seccion chat3 = Seccion.crear(taller3, cha);
		
		Taller taller4 = Taller.crear("Talleres Toledo", "B87654321","Calle del Carmen", ToledoCapital,
				Toledo, "34000", "901TALLER4", new BigDecimal (11.00), true);
			Seccion mect4 = Seccion.crear (taller4, mec);
			Seccion pint4 = Seccion.crear (taller4, pin);
			Seccion chat4 = Seccion.crear (taller4, cha);
			Seccion elet4 = Seccion.crear (taller4, ele);

		Taller taller5 = Taller.crear("Talleres Segovia", "C12345678", "Calle del Canario", SegoviaCapital, 
				Segovia, "42000", "901TALLER5", new BigDecimal (11.40), false);
			Seccion mect5 = Seccion.crear (taller5, mec);

		// Creamos usuarios y los definimos como clientes
		
		Usuario uC = Usuario.crear("carlos", "1", null, true);		
			uC.activar();
		Usuario uR = Usuario.crear("ricardo", "1", null, true);
			uR.activar();
		Usuario uA = Usuario.crear("antonio", "1", null, true);
			uA.activar();
		
		Cliente cC = Cliente.crear(uC, "Carlos", "Diaz", "1", Madrid, 
				"Getafe", "calle nº 1", 1, "tfno1");
		Cliente cR = Cliente.crear(uR, "Ricardo", "Cardenes", "2", Toledo, 
				"Toledo", "calle nº 2", 2, "tfno2");
		Cliente cA = Cliente.crear(uA, "Antonio", "Diaz", "3", Segovia, 
				"Segovia", "calle nº 3", 3, "tfno3");

		// Creamos un jefe de taller, un jefe de sección, dos mecánicos para cada sección
		// y un administrador para tener todos los puestos cubiertos
		// Creamos sus entradas en las tablas usuario, empleado y empleadoTaller
				
		Usuario uJT1 = Usuario.crear("jefetaller1", "1", null, false);		
			uJT1.activar();
		Usuario uJT2 = Usuario.crear("jefetaller2", "1", null, false);		
			uJT2.activar();
		Usuario uJT3 = Usuario.crear("jefetaller3", "1", null, false);		
			uJT3.activar();
		Usuario uJT4 = Usuario.crear("jefetaller4", "1", null, false);		
			uJT4.activar();
		Usuario uJST1M = Usuario.crear("jefesect1m", "1", null, false);		
			uJST1M.activar();
		Usuario uJST1P = Usuario.crear("jefesect1p", "1", null, false);		
			uJST1P.activar();
		Usuario uJST1C = Usuario.crear("jefesect1c", "1", null, false);		
			uJST1C.activar();
		Usuario uJST1E = Usuario.crear("jefesect1e", "1", null, false);		
			uJST1E.activar();
		Usuario uJST2M = Usuario.crear("jefesect2m", "1", null, false);		
			uJST2M.activar();
		Usuario uJST2E = Usuario.crear("jefesect2e", "1", null, false);		
			uJST2E.activar();
		Usuario uJST3P = Usuario.crear("jefesect3p", "1", null, false);		
			uJST3P.activar();
		Usuario uJST3C = Usuario.crear("jefesect3c", "1", null, false);		
			uJST3C.activar();
		Usuario uJST4M = Usuario.crear("jefesect4m", "1", null, false);		
			uJST4M.activar();
		Usuario uJST4P = Usuario.crear("jefesect4p", "1", null, false);		
			uJST4P.activar();
		Usuario uJST4C = Usuario.crear("jefesect4c", "1", null, false);		
			uJST4C.activar();
		Usuario uJST4E = Usuario.crear("jefesect4e", "1", null, false);		
			uJST4E.activar();
		Usuario uMT1M1 = Usuario.crear("mect1m1", "1", null, false);		
			uMT1M1.activar(); 
		Usuario uMT1M2 = Usuario.crear("mect1m2", "1", null, false);		
			uMT1M2.activar(); 
		Usuario uMT1P1 = Usuario.crear("mect1p1", "1", null, false);		
			uMT1P1.activar(); 
		Usuario uMT1P2 = Usuario.crear("mect1p2", "1", null, false);		
			uMT1P2.activar(); 
		Usuario uMT1C1 = Usuario.crear("mect1c1", "1", null, false);		
			uMT1C1.activar(); 
		Usuario uMT1C2 = Usuario.crear("mect1c2", "1", null, false);		
			uMT1C2.activar(); 
		Usuario uMT1E1 = Usuario.crear("mect1e1", "1", null, false);		
			uMT1E1.activar(); 
		Usuario uMT1E2 = Usuario.crear("mect1e2", "1", null, false);		
			uMT1E2.activar(); 
		Usuario uMT2M1 = Usuario.crear("mect2m1", "1", null, false);		
			uMT2M1.activar(); 
		Usuario uMT2M2 = Usuario.crear("mect2m2", "1", null, false);		
			uMT2M2.activar(); 
		Usuario uMT2E1 = Usuario.crear("mect2e1", "1", null, false);		
			uMT2E1.activar(); 
		Usuario uMT2E2 = Usuario.crear("mect2e2", "1", null, false);		
			uMT2E2.activar(); 
		Usuario uMT3P1 = Usuario.crear("mect3p1", "1", null, false);		
			uMT3P1.activar(); 
		Usuario uMT3P2 = Usuario.crear("mect3p2", "1", null, false);		
			uMT3P2.activar(); 
		Usuario uMT3C1 = Usuario.crear("mect3c1", "1", null, false);		
			uMT3C1.activar(); 
		Usuario uMT3C2 = Usuario.crear("mect3c2", "1", null, false);		
			uMT3C2.activar(); 
		Usuario uMT4M1 = Usuario.crear("mect4m1", "1", null, false);		
			uMT4M1.activar(); 
		Usuario uMT4M2 = Usuario.crear("mect4m2", "1", null, false);		
			uMT4M2.activar(); 
		Usuario uMT4P1 = Usuario.crear("mect4p1", "1", null, false);		
			uMT4P1.activar(); 
		Usuario uMT4P2 = Usuario.crear("mect4p2", "1", null, false);		
			uMT4P2.activar(); 
		Usuario uMT4C1 = Usuario.crear("mect4c1", "1", null, false);		
			uMT4C1.activar(); 
		Usuario uMT4C2 = Usuario.crear("mect4c2", "1", null, false);		
			uMT4C2.activar(); 
		Usuario uMT4E1 = Usuario.crear("mect4e1", "1", null, false);		
			uMT4E1.activar(); 
		Usuario uMT4E2 = Usuario.crear("mect4e2", "1", null, false);		
			uMT4E2.activar(); 
		Usuario uAdm = Usuario.crear("administrador", "1", null, false);
			uAdm.activar();

		Empleado eJT1 = Empleado.crear(uJT1, "Sr. Jefe", "de Taller 1","1",  
				"901123456", "20102010112010201000", Empleado.Categoria.JEFE_TALLER);
		Empleado eJST1M = Empleado.crear(uJST1M, "Sr. Jefe", "de Sección Taller 1 Mecánica", "2",  
				"901123457", "20102010112010201001", Empleado.Categoria.JEFE_SECCION);
		Empleado eJST1P = Empleado.crear(uJST1P, "Sr. Jefe", "de Sección Taller 1 Pintura", "3",  
				"901123457", "20102010112010201001", Empleado.Categoria.JEFE_SECCION);
		Empleado eJST1C = Empleado.crear(uJST1C, "Sr. Jefe", "de Sección Taller 1 Chapa", "4",  
				"901123457", "20102010112010201001", Empleado.Categoria.JEFE_SECCION);
		Empleado eJST1E = Empleado.crear(uJST1E, "Sr. Jefe", "de Sección Taller 1 Electricidad", 
				"5", "901123457", "20102010112010201001", Empleado.Categoria.JEFE_SECCION);
		Empleado eMT1M1 = Empleado.crear(uMT1M1, "Sr. Mecánico 1", "Taller 1 Mecánica", "6",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT1M2 = Empleado.crear(uMT1M2, "Sr. Mecánico 2", "Taller 1 Mecánica", "7",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT1P1 = Empleado.crear(uMT1P1, "Sr. Mecanico 1", "Taller 1 Pintura", "8",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT1P2 = Empleado.crear(uMT1P2, "Sr. Mecánico 2", "Taller 1 Pintura", "9",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT1C1 = Empleado.crear(uMT1C1, "Sr. Mecánico 1", "Taller 1 Chapa", "10",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT1C2 = Empleado.crear(uMT1C2, "Sr. Mecánico 2", "Taller 1 Chapa", "11",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT1E1 = Empleado.crear(uMT1E1, "Sr. Mecánico 1", "Taller 1 Electricidad", "12",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT1E2 = Empleado.crear(uMT1E2, "Sr. Mecánico 2", "Taller 1 Electricidad", "13",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);

		Empleado eJT2 = Empleado.crear(uJT2, "Sr. Jefe", "de Taller 2","14",  
				"901123456", "20102010112010201000", Empleado.Categoria.JEFE_TALLER);
		Empleado eJST2M = Empleado.crear(uJST2M, "Sr. Jefe", "de Sección Taller 2 Mecánica", "15",  
				"901123457", "20102010112010201001", Empleado.Categoria.JEFE_SECCION);
		Empleado eJST2E = Empleado.crear(uJST2E, "Sr. Jefe", "de Sección Taller 2 Electricidad", 
				"16", "901123457", "20102010112010201001", Empleado.Categoria.JEFE_SECCION);
		Empleado eMT2M1 = Empleado.crear(uMT2M1, "Sr. Mecánico 1", "Taller 2 Mecánica", "17",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT2M2 = Empleado.crear(uMT2M2, "Sr. Mecánico 2", "Taller 2 Mecánica", "18",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT2E1 = Empleado.crear(uMT2E1, "Sr. Mecánico 1", "Taller 2 Electrónica", "19",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT2E2 = Empleado.crear(uMT2E2, "Sr. Mecánico 2", "Taller 2 Electrónica", "20",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);

		Empleado eJT3 = Empleado.crear(uJT3, "Sr. Jefe", "de Taller 3","21",  
				"901123456", "20102010112010201000", Empleado.Categoria.JEFE_TALLER);
		Empleado eJST3P = Empleado.crear(uJST3P, "Sr. Jefe", "de Sección Taller 3 Pintura", "22",  
				"901123457", "20102010112010201001", Empleado.Categoria.JEFE_SECCION);
		Empleado eJST3C = Empleado.crear(uJST3C, "Sr. Jefe", "de Sección Taller 3 Chapa", "23",  
				"901123457", "20102010112010201001", Empleado.Categoria.JEFE_SECCION);
		Empleado eMT3P1 = Empleado.crear(uMT3P1, "Sr. Mecánico 1", "Taller 3 Pintura", "24",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT3P2 = Empleado.crear(uMT3P2, "Sr. Mecánico 2", "Taller 3 Pintura", "25",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT3C1 = Empleado.crear(uMT3C1, "Sr. Mecánico 1", "Taller 3 Chapa", "26",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT3C2 = Empleado.crear(uMT3C2, "Sr. Mecánico 2", "Taller 3 Chapa", "27",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);

		Empleado eJT4 = Empleado.crear(uJT4, "Sr. Jefe", "de Taller 4","28",  
				"901123456", "20102010112010201000", Empleado.Categoria.JEFE_TALLER);
		Empleado eJST4M = Empleado.crear(uJST4M, "Sr. Jefe", "de Sección Taller 4 Mecánica", "29",  
				"901123457", "20102010112010201001", Empleado.Categoria.JEFE_SECCION);
		Empleado eJST4P = Empleado.crear(uJST4P, "Sr. Jefe", "de Sección Taller 4 Pintura", "30",  
				"901123457", "20102010112010201001", Empleado.Categoria.JEFE_SECCION);
		Empleado eJST4C = Empleado.crear(uJST4C, "Sr. Jefe", "de Sección Taller 4 Chapa", "31",  
				"901123457", "20102010112010201001", Empleado.Categoria.JEFE_SECCION);
		Empleado eJST4E = Empleado.crear(uJST4E, "Sr. Jefe", "de Sección Taller 4 Electricidad", 
				"32", "901123457", "20102010112010201001", Empleado.Categoria.JEFE_SECCION);
		Empleado eMT4M1 = Empleado.crear(uMT4M1, "Sr. Mecánico 1", "Taller 3 Mecánica", "33",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT4M2 = Empleado.crear(uMT4M2, "Sr. Mecánico 2", "Taller 4 Mecánica", "34",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT4P1 = Empleado.crear(uMT4P1, "Sr. Mecánico 1", "Taller 4 Pintura", "35",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT4P2 = Empleado.crear(uMT4P2, "Sr. Mecánico 2", "Taller 4 Pintura", "36",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT4C1 = Empleado.crear(uMT4C1, "Sr. Mecánico 1", "Taller 4 Chapa", "37",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT4C2 = Empleado.crear(uMT4C2, "Sr. Mecánico 2", "Taller 4 Chapa", "38",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT4E1 = Empleado.crear(uMT4E1, "Sr. Mecánico 1", "Taller 4 Electricidad", "39",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eMT4E2 = Empleado.crear(uMT4E2, "Sr. Mecánico 2", "Taller 4 Electricidad", "40",  
				"901123458", "20102010112010201002", Empleado.Categoria.MECANICO);
		Empleado eAdm = Empleado.crear(uAdm, "Sr.", "Administrador", "Admin",  
				"901123458", "20102010112010201004", Empleado.Categoria.ADMINISTRADOR);

		// Asociamos empleados a talleres y secciones
		
		EmpleadoTaller.crear(uJT1, taller1, null); // el jefe de taller no lleva sección
		EmpleadoTaller.crear(uJST1M, taller1, mect1);
		EmpleadoTaller.crear(uJST1P, taller1, pint1);
		EmpleadoTaller.crear(uJST1C, taller1, chat1);
		EmpleadoTaller.crear(uJST1E, taller1, elet1);
		EmpleadoTaller.crear(uMT1M1, taller1, mect1);
		EmpleadoTaller.crear(uMT1M2, taller1, mect1);
		EmpleadoTaller.crear(uMT1P1, taller1, pint1);
		EmpleadoTaller.crear(uMT1P2, taller1, pint1);
		EmpleadoTaller.crear(uMT1C1, taller1, chat1);
		EmpleadoTaller.crear(uMT1C2, taller1, chat1);
		EmpleadoTaller.crear(uMT1E1, taller1, elet1);
		EmpleadoTaller.crear(uMT1E2, taller1, elet1);

		EmpleadoTaller.crear(uJT2, taller2, null); // el jefe de taller no lleva sección
		EmpleadoTaller.crear(uJST2M, taller2, mect2);
		EmpleadoTaller.crear(uJST2E, taller2, elet2);
		EmpleadoTaller.crear(uMT2M1, taller2, mect2);
		EmpleadoTaller.crear(uMT2M2, taller2, mect2);
		EmpleadoTaller.crear(uMT2E1, taller2, elet2);
		EmpleadoTaller.crear(uMT2E2, taller2, elet2);
		
		EmpleadoTaller.crear(uJT3, taller3, null); // el jefe de taller no lleva sección
		EmpleadoTaller.crear(uJST3P, taller3, pint3);
		EmpleadoTaller.crear(uJST3C, taller3, chat3);
		EmpleadoTaller.crear(uMT3P1, taller3, pint3);
		EmpleadoTaller.crear(uMT3P2, taller3, pint3);
		EmpleadoTaller.crear(uMT3C1, taller3, chat3);
		EmpleadoTaller.crear(uMT3C2, taller3, chat3);

		EmpleadoTaller.crear(uJT4, taller4, null); // el jefe de taller no lleva sección
		EmpleadoTaller.crear(uJST4M, taller4, mect4);
		EmpleadoTaller.crear(uJST4P, taller4, pint4);
		EmpleadoTaller.crear(uJST4C, taller4, chat4);
		EmpleadoTaller.crear(uJST4E, taller4, elet4);
		EmpleadoTaller.crear(uMT4M1, taller4, mect4);
		EmpleadoTaller.crear(uMT4M2, taller4, mect4);
		EmpleadoTaller.crear(uMT4P1, taller4, pint4);
		EmpleadoTaller.crear(uMT4P2, taller4, pint4);
		EmpleadoTaller.crear(uMT4C1, taller4, chat4);
		EmpleadoTaller.crear(uMT4C2, taller4, chat4);
		EmpleadoTaller.crear(uMT4E1, taller4, elet4);
		EmpleadoTaller.crear(uMT4E2, taller4, elet4);

		// Creamos Vehículos de prueba y los asociamos a clientes		
		
		Vehiculo v1 = Vehiculo.crear("01", "Mercedes", "CLK");
			VehiculoUsuario v1uc = VehiculoUsuario.crear(v1, uC); 
		Vehiculo v2 = Vehiculo.crear("02", "Audi", "A5");
			VehiculoUsuario v2ur = VehiculoUsuario.crear(v2, uR);
		Vehiculo v3 = Vehiculo.crear("03", "Seat", "Ibiza");
			VehiculoUsuario v3uc = VehiculoUsuario.crear(v3, uC);		
		Vehiculo v4 = Vehiculo.crear("04", "Ford", "Focus");
			VehiculoUsuario v4ua = VehiculoUsuario.crear(v4, uA);
		Vehiculo v5 = Vehiculo.crear("05", "Hyunday", "Accent");
			VehiculoUsuario v5uc = VehiculoUsuario.crear(v5, uC);
		Vehiculo v6 = Vehiculo.crear("06", "Fabia", "1.1");
			VehiculoUsuario v6ur = VehiculoUsuario.crear(v6, uR);
		Vehiculo v7 = Vehiculo.crear("07", "Mercedes", "Benz");
			VehiculoUsuario v7uc = VehiculoUsuario.crear(v7, uC); 
		Vehiculo v8 = Vehiculo.crear("08", "Audi", "A1");
			VehiculoUsuario v8ur = VehiculoUsuario.crear(v8, uR);
		Vehiculo v9 = Vehiculo.crear("09", "Seat", "Panda");
			VehiculoUsuario v9uc = VehiculoUsuario.crear(v9, uC);
		Vehiculo v10 =  Vehiculo.crear("10", "Peugeot", "509");
			VehiculoUsuario v10uc =  VehiculoUsuario.crear(v10, uC);
		Vehiculo v11 =  Vehiculo.crear("11", "Kia", "Ceed");
			VehiculoUsuario v11ur = VehiculoUsuario.crear(v11, uR);

		// Creamos materiales
		Material m1 = Material.crear("Latiguillo", "cable", new BigDecimal(35));
			m1.activar();
		Material m2 = Material.crear("Frenos", "pedal", new BigDecimal(15));
			m2.activar();
		Material m3 = Material.crear("Pintura", "Azul metalizado", new BigDecimal(90));
			m3.activar();
		Material m4 = Material.crear("Aleron", "Aleron derecho", new BigDecimal(50));
			m4.activar();
		Material freno = Material.crear("Freno", "pastilla", new BigDecimal(12));
			freno.activar();
		Material luz = Material.crear("Luz posicion", "blanca", new BigDecimal(8));
			luz.activar();
		Material luzlarga = Material.crear("Luz larga", "blanca", new BigDecimal(28));
			luzlarga.activar();
		Material tapa = Material.crear("Tapa de la gasolina", "rosca", new BigDecimal(30));
			tapa.activar();
		Material pintura = Material.crear("Pintura gris metalizado", "5 litros", new BigDecimal(22));
			pintura.activar();
		Material secante = Material.crear("Secador de pintura", "brillante", new BigDecimal(5));
			secante.activar();

		// Creamos partes de trabajo, reparaciones y trabajos de diferentes tipos. En cada trabajo ponemos los
		// materiales empleados

		// Parte de trabajo del vehículo 1 - Mercedes CLK, de Carlos 	
		// Tiene reparación, y trabajos creados, pero sin aceptar por los mecánicos
		ParteTrabajo p1 = ParteTrabajo.crear(uC,  taller1,  v1,  "Revision de los 10.000", 
				new BigDecimal(200), true, "r1", "a1", new Date(113,7,10), new Date(113,7,16), 
				null, null, false, false);		
			Reparacion r5 = Reparacion.crear(uC, mect1, p1, "Revisión general",  new Date(113,7,15), 
				new Date(113,7,21), new Date(113,7,21), null, false, null); 
			Trabajo tr1 =  Trabajo.crear(uMT1M1, r5, "Pintar completo", new Date (113,7,15), new Date(113,7,20), null, 
					false, 10, new BigDecimal(15));
			MaterialTrabajo mt1 = MaterialTrabajo.crear(tr1, m1, 1, new BigDecimal(35));
			MaterialTrabajo mt2 = MaterialTrabajo.crear(tr1, m2, 4, new BigDecimal(60));
			MaterialTrabajo mt3 = MaterialTrabajo.crear(tr1, m3, 2, new BigDecimal(180));
			Trabajo tr2 =  Trabajo.crear(uMT1M1, r5, "Cambiar frenos", null, null, null, 
					false, 0, new BigDecimal(25));
			Trabajo tr3 =  Trabajo.crear(uMT1M2, r5, "Cambiar latiguillo", null, null, null, 
					false, 0, new BigDecimal(27));
			Trabajo tr4 =  Trabajo.crear(uMT1M2, r5, "Revisión general", null, null, null, 
					false, 0, new BigDecimal(12));

		// Parte del vehículo 3 - Seat Ibiza, de Carlos. Pendiente de facturar
		ParteTrabajo p2 = ParteTrabajo.crear(uC,  taller1,  v3,  "Pierde liquido de frenos", 
					new BigDecimal(250), true, "r2", "a2", new Date(113, 7, 16), new Date(113, 7, 21), 
					new Date(113, 7, 21), null, true, true);
				Reparacion r4  = Reparacion.crear(uC, pint1, p2, "TRABAJOS PINTURA", new Date (13, 7, 14), 
					new Date (13, 7, 15), new Date (13, 7, 25), new Date (13, 7, 25), true, null);
					Trabajo t4_1 =  Trabajo.crear(uMT1P1, r4, "Pintar techo", new Date (13, 7, 14), 
						new Date(113,7,25), new Date (13,7,25), true, 5, new BigDecimal(10));
					MaterialTrabajo mt4 = MaterialTrabajo.crear(t4_1, m3, 5, new BigDecimal(35));
					
		// Parte de trabajo del vehículo 6 - Fabia 1.1, de Ricardo. Pendiente de confirmar por el cliente		
		ParteTrabajo parteFAB = ParteTrabajo.crear(uR, taller1, v6, "Bollo en el capó", 
					new BigDecimal(400), false, "Ref. ABC", null, new Date(113,7,28), new Date (113,8,20), 
					null, null, false, false);
					
		// Parte de trabajo del vehículo 7 - Mercedes Benz 	
		ParteTrabajo p4 = ParteTrabajo.crear(uC, taller1, v7, "Revisión general", 
				new Date(113,7,21));
		
		// Parte del vehículo 11 - Kia Ceed, de Ricardo. Sin avisar. 	
		ParteTrabajo pPte = ParteTrabajo.crear(uR, taller1, v11, "Revisión general", 
					new BigDecimal(500), true, "ref. 44", "alb. 31", new Date(113, 9, 1), new Date(113, 9, 5), 
					new Date (13, 9, 5), null, false, true);
				Reparacion rPte = Reparacion.crear(uR, pint1, pPte, "Reparación arañazos", new Date (13, 9, 1),
						new Date (13, 9, 2), new Date (13, 9, 3), new Date (13, 9, 3), true, mect1);
					Trabajo tPte = Trabajo.crear(uMT1P1, rPte, "Pintar arañazos", new Date (13, 9, 2), 
							new Date (13, 9, 3), new Date (13, 9, 3), true, 5, new BigDecimal(10));
					MaterialTrabajo mtpte1 = MaterialTrabajo.crear(tPte, m3, 1, new BigDecimal (35));
					Trabajo tPte3 = Trabajo.crear(uMT1P1, rPte, "Pintar techo", new Date (13, 9, 2), 
							new Date (13, 9, 3), new Date (13, 9, 3), true, 15, new BigDecimal(12));
					MaterialTrabajo mtpte2 = MaterialTrabajo.crear(tPte3, pintura, 5, new BigDecimal (22));
					MaterialTrabajo mtpte3 = MaterialTrabajo.crear(tPte3, secante, 1, new BigDecimal(5));
				Reparacion rPte2 = Reparacion.crear(uR, mect1, pPte, "Revisión general", new Date (13, 9, 4),
							new Date (13, 9, 5), new Date (13, 9, 5), new Date (13, 9, 5), true, null);
						Trabajo tPte2 = Trabajo.crear(uMT1M1, rPte2, "Revisar mecánica", new Date (13, 9, 4), 
								new Date (13, 9, 5), new Date (13, 9, 5), true, 10, new BigDecimal(10));
						MaterialTrabajo mtpte4 = MaterialTrabajo.crear(tPte2, m2, 1, new BigDecimal(15));
						MaterialTrabajo mtpte5 = MaterialTrabajo.crear(tPte2, luz, 1, new BigDecimal(8));
						MaterialTrabajo mtpte6 = MaterialTrabajo.crear(tPte2, tapa, 1, new BigDecimal (30));
	}
}
